Virtual machines (VM) collocation is massively used, e.g., in datacenters, to maximize computer utilization. However, the use of VM collocation causes conflicts in terms of resource sharing: shared physical resources become subject to contention, a phenomenon that can cause the quality of service to drop. It is therefore desired to detect potential contention in systems of co-located VMs. Essentially three types of approaches have been developed to address this issue.
A first type of contention detection is based on static signatures, whereby one tries to match given VM measures to manually defined behaviors.
A second type of detection uses VM cloning. In such solutions, investigations are started when neither historical data nor similar VM match a currently monitored VM behavior and one basically make a clone of a production VM, into isolation conditions. To reproduce similar client input, the network input traffic is copied and forwarded to both the production VM and the clone. Contention is then diagnosed if behavioral differences are found between the isolated clone and the production VM.
A third approach is to avoid contention, using prior and on-line characterization. Namely, a pressure test is applied on the VM to be scheduled/re-scheduled on a dedicated test machine. Then, the datacenter scheduler is made aware of VMs sensitivity and impact on shared resources. Whenever the VM performances deviates from the system's predictions, the pressure test is re-run.